dg100_getfileheaders(&headers);
- for (int i = 0; i < headers.count; i++) {
+ for (unsigned int i = 0; i < headers.count; i++) {
int filenum = headers.data[i];
dg100_getfile(filenum, &track);
}
static void
track_hdr_pr(const route_head* trk_head)
{
- (*cur_tx_tracklist_entry)->ishdr = gpsTrue;
+ (*cur_tx_tracklist_entry)->ishdr = true;
if (!trk_head->rte_name.isEmpty()) {
strncpy((*cur_tx_tracklist_entry)->trk_ident, CSTRc(trk_head->rte_name), sizeof((*cur_tx_tracklist_entry)->trk_ident));
(*cur_tx_tracklist_entry)->trk_ident[sizeof((*cur_tx_tracklist_entry)->trk_ident)-1] = 0;
#define MAX_GPS_PACKET_SIZE 1024
#define GPS_TIME_OUT 5
-#define gpsTrue 1
-#define gpsFalse 0
-
#define DLE 0x10
#define ETX 0x03
} GPS_OCourse_Point, *GPS_PCourse_Point;
typedef struct GPS_SCourse_Limits {
- uint32 max_courses;
- uint32 max_course_laps;
- uint32 max_course_pnt;
- uint32 max_course_trk_pnt;
+ int32 max_courses;
+ int32 max_course_laps;
+ int32 max_course_pnt;
+ int32 max_course_trk_pnt;
} GPS_OCourse_Limits, *GPS_PCourse_Limits;
p += 4; /* Skip over "outbound link ete in seconds */
if (protoid == 110) {
float gps_temp;
- int gps_time;
gps_temp = GPS_Util_Get_Float(p);
p+=4;
if (gps_temp <= 1.0e24) {
(*way)->temperature = gps_temp;
}
- gps_time = GPS_Util_Get_Uint(p);
+ uint32 gps_time = GPS_Util_Get_Uint(p);
p+=4;
/* The spec says that 0xffffffff is unknown, but the 60CSX with
* firmware 2.5.0 writes zero.
cpt = (struct GPS_SCourse_Point**) xrealloc(cpt, (n_cpt+n_wpt) * sizeof(GPS_PCourse_Point));
for (i=0; i<n_wpt; i++) {
double dist, min_dist = DBL_MAX;
- int min_dist_idx = 0, trk_idx = 0, min_dist_trk_idx = 0;
+ uint32 min_dist_idx = 0, trk_idx = 0, min_dist_trk_idx = 0;
/* Find closest track point */
for (j=first_new_ctk; j<n_ctk; j++) {
return (ops->Read_Packet)(fd, packet);
}
-int32 GPS_Send_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec)
+bool GPS_Send_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec)
{
return (ops->Send_Ack)(fd, tra, rec);
}
-int32 GPS_Get_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec)
+bool GPS_Get_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec)
{
return (ops->Get_Ack)(fd, tra, rec);
}
int32 GPS_Device_Write(int32 ignored, const void* obuf, int size);
void GPS_Device_Error(char* hdr, ...);
int32 GPS_Write_Packet(gpsdevh* fd, GPS_PPacket& packet);
- int32 GPS_Send_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
+ bool GPS_Send_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
int32 GPS_Packet_Read(gpsdevh* fd, GPS_PPacket* packet);
- int32 GPS_Get_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
+ bool GPS_Get_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
typedef int32(*gps_device_op)(gpsdevh*);
typedef int32(*gps_device_op5)(const char*, gpsdevh** fd);
- typedef int32(*gps_device_op10)(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
+ typedef bool(*gps_device_op10)(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
typedef int32(*gps_device_op12)(gpsdevh* fd, GPS_PPacket& packet);
typedef int32(*gps_device_op13)(gpsdevh* fd, GPS_PPacket* packet);
typedef struct {
garmin_unit_info_t garmin_unit_info[GUSB_MAX_UNITS];
-static int32 success_stub()
+static bool success_stub()
{
- return 1;
+ return true;
}
static int32 gdu_on(const char* port, gpsdevh** fd)
{
time_t secs;
- if (time(&secs)==-1) {
+ if (time(&secs) < 0) {
perror("time");
- GPS_Error("GPS_Time_Now: Error reading time");
gps_errno = HARDWARE_ERROR;
+ GPS_Error("GPS_Time_Now: Error reading time");
return 0;
}
int32 GPS_Serial_Packet_Read(gpsdevh* fd, GPS_PPacket* packet)
{
time_t start;
- int32 len;
- UC u;
- int32 isDLE;
- UC* p;
- int32 i;
- UC chk=0, chk_read;
+ int32 len = 0;
+ UC u;
+ UC* p;
+ UC chk = 0, chk_read;
const char* m1;
const char* m2;
-
- len = 0;
- isDLE = gpsFalse;
+ bool isDLE = false;
p = (*packet).data;
start = GPS_Time_Now();
GPS_Diag("Rx Data:");
- while (GPS_Time_Now() < start+GPS_TIME_OUT) {
+ while (GPS_Time_Now() < start + GPS_TIME_OUT) {
if (int32 n = GPS_Serial_Chars_Ready(fd)) {
- if (GPS_Serial_Read(fd,&u,1)==-1) {
+ if (GPS_Serial_Read(fd, &u, 1) < 0) {
perror("read");
GPS_Error("GPS_Packet_Read: Read error");
gps_errno = FRAMING_ERROR;
if (!len) {
if (u != DLE) {
- (void) fprintf(stderr,"GPS_Packet_Read: No DLE. Data received, but probably not a garmin packet.\n");
+ (void) fprintf(stderr, "GPS_Packet_Read: No DLE. Data received, but probably not a garmin packet.\n");
(void) fflush(stderr);
return 0;
}
continue;
}
- if (len==1) {
+ if (len == 1) {
(*packet).type = u;
++len;
continue;
if (u == DLE) {
if (isDLE) {
- isDLE = gpsFalse;
+ isDLE = false;
continue;
}
- isDLE = gpsTrue;
+ isDLE = true;
}
if (len == 2) {
if (u == ETX)
if (isDLE) {
- if (p-(*packet).data-2 != (*packet).n) {
+ if (p - (*packet).data - 2 != (*packet).n) {
GPS_Error("GPS_Packet_Read: Bad count");
gps_errno = FRAMING_ERROR;
return 0;
}
- chk_read = *(p-2);
+ chk_read = *(p - 2);
- for (i=0,p=(*packet).data; i<(*packet).n; ++i) {
+ unsigned int i;
+ for (i = 0, p = (*packet).data; i < (*packet).n; ++i) {
chk -= *p++;
}
chk -= packet->type;
m1 = Get_Pkt_Type((*packet).type, (*packet).data[0], &m2);
if (gps_show_bytes) {
GPS_Diag(" ");
- for (i = 0; i < packet->n; i++) {
+ for (unsigned i = 0; i < packet->n; i++) {
char c = (*packet).data[i];
- GPS_Diag("%c", isalnum(c) ? c : '.');
+ GPS_Diag("%c", isalnum(c) ? c : '.');
}
GPS_Diag(" ");
}
** @param [r] tra [GPS_PPacket *] packet just transmitted
** @param [r] rec [GPS_PPacket *] packet to receive
**
-** @return [int32] true if ACK
+** @return [bool] true if ACK
**********************************************************************/
-int32 GPS_Serial_Get_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec)
+bool GPS_Serial_Get_Ack(gpsdevh *fd, GPS_PPacket *tra, GPS_PPacket *rec)
{
if (!GPS_Serial_Packet_Read(fd, rec)) {
- return 0;
+ return false;
}
if (LINK_ID[0].Pid_Ack_Byte != (*rec).type) {
if (*(*rec).data != (*tra).type) {
gps_error = FRAMING_ERROR;
- return 0;
+ return false;
}
- return 1;
+ return true;
}
time_t GPS_Time_Now();
int32 GPS_Serial_Packet_Read(gpsdevh* fd, GPS_PPacket* packet);
- int32 GPS_Serial_Get_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
+ bool GPS_Serial_Get_Ack(gpsdevh *fd, GPS_PPacket *tra, GPS_PPacket *rec);
#endif
{
UC* p;
UC* q;
-
- int32 i;
- UC chk=0;
- US bytes=0;
+ UC chk = 0;
+ US bytes = 0;
p = in.data;
q = out->data;
chk -= in.n;
- for (i = 0; i < in.n; ++i) {
+ for (uint32 i = 0; i < in.n; ++i) {
if (*p == DLE) {
++bytes;
*q++ = DLE;
** @param [r] tra [GPS_PPacket *] packet to transmit
** @param [r] rec [GPS_PPacket *] last packet received
**
-** @return [int32] success
+** @return [bool] success
************************************************************************/
-int32 GPS_Serial_Send_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec)
+bool GPS_Serial_Send_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec)
{
UC data[2];
if (!GPS_Write_Packet(fd,*tra)) {
GPS_Error("Error acknowledging packet");
gps_errno = SERIAL_ERROR;
- return 0;
+ return false;
}
- return 1;
+ return true;
}
#define GPS_ARB_LEN 1024
int32 GPS_Serial_Write_Packet(gpsdevh* fd, GPS_PPacket& packet);
- int32 GPS_Serial_Send_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
+ bool GPS_Serial_Send_Ack(gpsdevh* fd, GPS_PPacket* tra, GPS_PPacket* rec);
void GPS_Make_Packet(GPS_PPacket* packet, US type, UC* data, uint32 n);
*/
static bool
read_packet(unsigned type, void* payload,
- unsigned minlength, unsigned maxlength,
+ int minlength, int maxlength,
bool handle_nak)
{
- unsigned size;
- unsigned checksum;
-
if (read_word() != 0xa2a0) {
fatal(MYNAME ": Protocol error: Bad packet header."
" Is your NaviGPS in NAVILINK mode?\n");
}
+ int size;
if ((size = read_word()) <= minlength) {
fatal(MYNAME ": Protocol error: Packet too short\n");
}
fatal(MYNAME ": Protocol error: Bad packet type (expected 0x%02x but got 0x%02x)\n", type, data[0]);
}
+ unsigned checksum;
if ((checksum = read_word()) != navilink_checksum_packet(data, size)) {
fatal(MYNAME ": Checksum error - expected %x got %x\n",
navilink_checksum_packet(data, size), checksum);
{
int errors = 5; /* allow this many errors */
unsigned int c, i, state;
- signed int rcv_len;
+ unsigned int rcv_len;
for (i = 0, state = 0; i < RETRIES && state < sizeof(MSG_START); i++) {
c = rd_char(&errors);